package com.alan.camunda.boot.groovymod.shelllab;

import groovy.lang.Binding;
import groovy.lang.GroovyShell;

/**
 * 注入变量，调用静态方法
 */
public class Lab1Demo2 {


    public static void main(String[] args) {

        // 创建绑定对象，将变量和方法传递到 Groovy 脚本中
        Binding binding = new Binding();
        binding.setVariable("$JobName", "WorkFLow_001");
        binding.setVariable("$JobExecId", "Exec_883");

        // 创建 GroovyShell 实例，并注入绑定对象
        GroovyShell shell = new GroovyShell(binding);

        // 定义 Groovy 脚本
        String script = """
            // 访问注入的变量
            import static com.alan.camunda.boot.util.StringFunctions.*
            // 调用注入的静态方法
            def result = $JobName + "|" + toUpperCase($JobExecId)
            return result
        """;

        // 执行 Groovy 脚本
        Object result = shell.evaluate(script);

        // 输出执行结果
        System.out.println("Groovy script result: " + result);


    }


}
